1. Field of the Invention
The present invention relates to an information embedding method and apparatus for deeply encrypting and embedding into image data auxiliary information related to this image data and to a computer readable recording medium having recorded a program for causing a computer to execute the information embedding method.
2. Description of the Related Art
With advancement in the digitalization of image data, it has become general knowledge that image data, taken from various digital input units such as a digital camera, a scanner and the like, is output with a variety of digital image output units, such as a color printer, a CRT display unit, a photoengraving unit and the like. Furthermore, such image data has been handled in an open environment by readjustment of network infrastructure. With this, the protection of rights, such as a design right and copyright, produced by generation or processing of digital image data has become a problem.
For this reason, a variety of techniques for deeply encrypting and embedding the certified information or copyright information of image data (hereinafter referred to as auxiliary information) into the image data have been proposed (e.g., Japanese Unexamined Patent Publication Nos. 8(1996)-289159, 10(1998)-108180, 9(1997)-214636, etc.). These techniques embed certified information or copyright information into the redundancy portion of image data, whereby only reproducing the image data cannot confirm the embedded information; however, the techniques are capable of reading out the information embedded into the data and performing a display or the like, by employing a device or software for reading out the information. For this deep encryption, the details are described in various references (e.g., Kineo Matsui, xe2x80x9cElectronic Watermark,xe2x80x9d in O plus E No. 213, August 1997).
As such a technique of deep encryption, various techniques, such as a pixel space utilizing type, a quantization error utilizing type, a frequency area utilizing type and the like, are known. The pixel space utilizing type is a method of taking out, for example, a plane of 3xc3x973 pixels adjacent to an object pixel and embedding auxiliary information into 8 bits around this plane. The quantization error utilizing type is a method of directing attention to a quantization error occurring in the process of compressing image data and of controlling quantized output to an even number and an odd number by the 0 and 1 in the bit sequence of auxiliary information and apparently embedding the auxiliary information into image data as quantization noise. For this quantization error utilizing type, the details are described in xe2x80x9cDeep Cryptograph for an Imagexe2x80x9d (Kineo Matsui, Morikita publication, 1993). The frequency area utilizing type is a method of embedding auxiliary information into a frequency area visually insensitive on an image area. For instance, the high-frequency component in an image is a visually insensitive area, so image data is separated into a plurality of frequency bands, auxiliary information is embedded into a high-frequency band, and furthermore, the frequency bands are reconstructed to the image data, whereby the auxiliary information can be embedded. Also,with regard to human visual property, there is an area that generally color difference or color saturation information is lowered in ability to discriminate gradation more than brightness information and invisible recording becomes possible in the portion of a difference between the brightness information and the color difference or color saturation information. Therefore, auxiliary information can also be embedded into this area.
Besides, a method of embedding auxiliary information into a bit plane whose S/N ratio is poor as an image, by mixing the information with the redundancy of noise; a method of embedding auxiliary information into the redundancy of an information variation in a pixel block (space) in a certain range; a method of embedding auxiliary information into a quantization error when the amount of data information shrinks by coding in performing data compression and the like are enumerated.
Here, a description will be made of an information embedding method that takes advantage of the information conversion redundancy of the pixel block in a density pattern for expressing gradation in a binary image.
There is a density pattern method as a method of expressing multi-level gradation by binary bit mapping. FIG. 23 is a model case of expressing gradation by a change in the area of 4 binary pixels employed as one unit. Here, the number of gradations, Leq, which can be represented in terms of the number of specified bits, L, and the number of pixels, nxc3x97n, can be represented by the following Eq. (1):
Leq=(Lxe2x88x921)n2+1xe2x80x83xe2x80x83(1)
Therefore, the case shown in FIG. 23 can express 5 gradations. Also, as clear from FIG. 23, a plurality of patterns indicating a single quantization level (of the same gradation) are present depending upon which of the four pixels puts up a bit that becomes black. For example, quantization levels 0 and 4 can take only a single pattern, but quantization levels 1 and 3 have 4 possible patterns and quantization level 2 has 6 possible patterns. That is, the number of patterns is determined by a combination array of m black pixels and (n2xe2x88x92m) white pixels in an array of n2 pixels, so n2Cm possible patterns per gradation are considered. By taking advantage of redundant pixel array patterns with respect to the same quantization level, it is possible to represent another piece of information.
If it is assumed that another piece of information in this case is an integral number, the information will be allocated 4 integral numbers and have 2 bits, for example, in the case of quantization level 1. That is, in the case of quantization level m, the number of allocated bits, BITm, is calculated as:
BITm=[log2(n2Cm)]xe2x80x83xe2x80x83(2)
Therefore, in the case of quantization level 2,
BIT2=[log2(22C2)]=log26=2.585
from Eq. (2). In addition, the number of quantization bits that can be represented by the entire block of 4 pixels becomes:
BIT0+BIT1+BIT2+BIT3+BIT4=0+2+2.585+2+0=6.585 bits
In this manner, the pixel position of putting up a bit that becomes black can be represented in the redundancy as a single piece of information. That is, there are only quantization levels 0 and 4 as visual information, but in terms of the redundancy of another piece of information, there are thus various variations in each quantization level.
Note that if the number of pixels constituting each block increases, the redundancy will become great and the amount of information that can be embedded will increase, however, on the other hand, this block will become recognized as a unit beyond the integration effect of visual sense and image quality will be lost. Therefore, the visual property and the amount of information to be embedded are in a trade-off relationship.
An object of the present invention is to provide a novel method for embedding auxiliary information, such as the above-mentioned, into image data.
If image data in a certain color space is converted to a color space differing in color reproduction characteristic from this color space, distortion will occur in the color space. Because of this distortion, quantization resolution shrinks or increases when mapping of data is performed between both color spaces. For this reason, unless the error is diffused to some degree, a color space cannot be converted. The present invention embeds auxiliary information by taking advantage of the quantization error that occurs when this color space is converted.
That is, an information embedding method according to the present invention is an information embedding method of deeply encrypting and embedding into image data auxiliary information related to said image data, said information embedding method comprising the steps of:
when said image is converted from a first color space, to which said image belongs, to a second color space having a color reproduction characteristic differing from said first color space,
calculating a quantization error in converting said image data to said second color space, based on a difference in color reproduction characteristic between said first and second color spaces; and
encrypting and embedding said auxiliary information into said quantization error.
Here, the xe2x80x9cdeeply encrypting and embeddingxe2x80x9d means to embed auxiliary information into the redundant portion of original data.
In the information embedding method of the present invention, it is preferable to decide a difference in gamut between said first color space and said second color space and it is also preferable that for a color space inside a gamut in both color spaces, a geometrical error be calculated as said quantization error. The geometrical error occurs when a color coordinate in said first color space is converted to a corresponding color coordinate in said second color space.
Here, the xe2x80x9ccolor coordinatexe2x80x9d means a coordinate position of prescribing a color in a certain color space.
In addition, it is preferable that a difference in gamut between said first color space and said second color space be decided and that a color space in said second color space outside the gamut of said first color space be compressed inside the gamut of said first color space and it is also preferable that an error occurring by the compression be calculated as said quantization error.
Here, the xe2x80x9cgamutxe2x80x9d means a boundary as a color space.
Furthermore, it is preferable that said auxiliary information be embedded into a quantization error in a space where a quantization resolution of said first color space shrinks or increases.
More specifically, in a preferred form of the present invention, a first conversion table for converting a color coordinate in said first color space to a corresponding color coordinate in said second color space and a second conversion table for converting a predetermined color coordinate in said first color space to a different color coordinate adjacent to a color coordinate in said second color space corresponding to said predetermined color coordinate are generated, and when said image data is converted from said first color space to said second color space, said auxiliary information is embedded by switching said first conversion table and said second conversion table in accordance with a position on an image represented by said image data.
Here, the xe2x80x9cposition on an imagexe2x80x9d may represent the entire area of each of the image areas into which an image is divided or may represent a pixel position at which a predetermined color coordinate appears when this image is scanned in a raster fashion.
Also, in the present invention, embedding xe2x80x9cauxiliary informationxe2x80x9d means that auxiliary information may be embedded by coding or encoding it or may be embedded in the form of a pattern, such as characters, figures and the like.
In another form of the present invention, a first conversion table for converting a color coordinate in said first color space to a corresponding color coordinate in said second color space is generated and a plurality of second conversion tables for converting a plurality of predetermined color coordinates in said first color space to different color coordinates adjacent to color coordinates in said second color space respectively corresponding to said plurality of predetermined color coordinates are generated, said plurality of second conversion tables corresponding in number to said plurality of predetermined color coordinates, and when said image data is converted from said first color space to said second color space, a single second conversion table is selected from said plurality of second conversion tables in accordance with a content of said auxiliary information and said auxiliary information is embedded by switching said first conversion table and said selected second conversion table in accordance with a position on an image represented by said image data.
In still another preferred form of the present invention, a first conversion table for converting a color coordinate in said first color space to a corresponding color coordinate in said second color space is generated and a plurality of second conversion tables for converting a plurality of predetermined color coordinates in said first color space to different color coordinates adjacent to color coordinates in said second color space respectively corresponding to said plurality of predetermined color coordinates are generated, said plurality of second conversion tables corresponding in number to said plurality of predetermined color coordinates, and when said image data is converted from said first color space to said second color space, a single second conversion table is selected from said plurality of second conversion tables for each of a plurality of pieces of auxiliary information, and a plurality of different pieces of auxiliary information are embedded by switching said first conversion table and said selected second conversion table in accordance with a position on an image represented by said image data, while selecting said single second conversion table for each said auxiliary information.
Here, the xe2x80x9cposition on an imagexe2x80x9d may also represent the entire area of each of the image areas into which an image is divided or may represent a pixel position at which a predetermined color coordinate appears when this image is scanned in a raster fashion.
In a further preferred form of the present invention, a first conversion table for converting a color coordinate in said first color space to a corresponding color coordinate in said second color space is generated and a second conversion table for converting a plurality of predetermined color coordinates in said first color space to different color coordinates adjacent to color coordinates in said second color space respectively corresponding to said plurality of predetermined color coordinates is generated, and when said image data is converted from said first color space to said second color space, a plurality of different pieces of auxiliary information are embedded for each said color coordinate by switching said first conversion table and said second conversion table in accordance with a color coordinate on an image represented by said image data.
Furthermore, it is preferable that said plurality of different pieces of auxiliary information include partition information for partitioning positions at which said plurality of pieces of auxiliary information are embedded.
An auxiliary information reading method according to the present invention is an auxiliary information reading method of reading out auxiliary information from image data embedded with said auxiliary information by a specific form of the information embedding method of the present invention, said auxiliary information reading method comprising the steps of:
converting said image data by said first conversion table and obtaining first image data; and
reading out said auxiliary information, based on a difference in color between the image data embedded with said auxiliary information and said first image data.
An image output method according to the present invention is an image output method of outputting image data embedded with said auxiliary information by a specific form of the information embedding method of the present invention, said image output method comprising the steps of:
reading out said auxiliary information from said image data; and
performing a process based on said auxiliary information with respect to said image data and outputting said image data.
Note that it is preferable that in the image output method according to the present invention, said image data be given said auxiliary information so that said auxiliary information can be recognized visually and be output.
Here, the xe2x80x9cprocess based on said auxiliary informationxe2x80x9d is, for example, a process of giving a photographed date to image data, if the auxiliary information is one representing the photographed date. Also, when auxiliary information represents the conditions under which image data was obtained by photographing, the process based on the auxiliary information is an image process, such as a gradation process of performing gradation on image data, based on the photographing conditions.
An information embedding apparatus according to the present invention is an information embedding apparatus for deeply encrypting and embedding into image data auxiliary information related to said image data, said information embedding apparatus comprising:
when said image is converted from a first color space, to which said image belongs, to a second color space having a color reproduction characteristic differing from said first color space,
quantization error calculation means for calculating a quantization error in converting said image data to said second color space, based on a difference in color reproduction characteristic between said first and second color spaces; and
embedment means for encrypting and embedding said auxiliary information into said quantization error.
Note that in a preferred form of the information embedding apparatus of the present invention, said quantization error calculation means is further provided with decision means for deciding a difference in gamut between said first color space and said second color space and is means for calculating a geometrical error, which occurs when a color coordinate in said first color space is converted to a corresponding color coordinate in said second color space, as said quantization error, for a color space inside a gamut in both color spaces.
In another preferred form of the information embedding apparatus of the present invention, said quantization error calculation means is further provided with decision means for deciding a difference in gamut between said first color space and said second color space and is means for compressing a color space in said second color space, which is outside the gamut of said first color space, inside the gamut of said first color space and for calculating an error, which occurs by the compression, as said quantization error.
Furthermore, it is preferable that said embedment means be means for embedding said auxiliary information into a quantization error in a space where a quantization resolution of said first color space shrinks or increases.
More specifically, in a further preferred form of the information embedding apparatus of the present invention, said quantization error calculation means is provided with means for generating a first conversion table for converting a color coordinate in said first color space to a corresponding color coordinate in said second color space and a second conversion table for converting a predetermined color coordinate in said first color space to a different color coordinate adjacent to a color coordinate in said second color space corresponding to said predetermined color coordinate, and said embedment means is means for embedding said auxiliary information by switching said first conversion table and said second conversion table in accordance with a position on an image represented by said image data, when said image data is converted from said first color space to said second color space.
Also, said quantization error calculation means may be provided with means for generating a first conversion table for converting a color coordinate in said first color space to a corresponding color coordinate in said second color space and a plurality of second conversion tables for converting a plurality of predetermined color coordinates in said first color space to different color coordinates adjacent to color coordinates in said second color space respectively corresponding to said plurality of predetermined color coordinates, said plurality of second conversion tables corresponding in number to said plurality of predetermined color coordinates; and said embedment means may be means for selecting a single second conversion table from said plurality of second conversion tables in accordance with a content of said auxiliary information and embedding said auxiliary information by switching said first conversion table and said selected second conversion table in accordance with a position on an image represented by said image data, when said image data is converted from said first color space to said second color space.
Furthermore, said quantization error calculation means may be provided with means for generating a first conversion table for converting a color coordinate in said first color space to a corresponding color coordinate in said second color space and a plurality of second conversion tables for converting a plurality of predetermined color coordinates in said first color space to different color coordinates adjacent to color coordinates in said second color space respectively corresponding to said plurality of predetermined color coordinates, said plurality of second conversion tables corresponding in number to said plurality of predetermined color coordinates; and said embedment means may be means for selecting a single second conversion table from said plurality of second conversion tables for each of a plurality of pieces of auxiliary information and embedding a plurality of different pieces of auxiliary information by switching said first conversion table and said selected second conversion table in accordance with a position on an image represented by said image data while selecting said single second conversion table for each said auxiliary information, when said image data is converted from said first color space to said second color space.
In addition, said quantization error calculation means may be provided with means for generating a first conversion table for converting a color coordinate in said first color space to a corresponding color coordinate in said second color space and a second conversion table for converting a plurality of predetermined color coordinates in said first color space to different color coordinates adjacent to color coordinates in said second color space respectively corresponding to said plurality of predetermined color coordinates; and said embedment means may be means for embedding a plurality of different pieces of auxiliary information for each said color coordinate by switching said first conversion table and said second conversion table in accordance with a color coordinate on an image represented by said image data, when said image data is converted from said first color space to said second color space.
Furthermore, it is preferable that said plurality of different pieces of auxiliary information include partition information for partitioning positions at which said plurality of pieces of auxiliary information are embedded.
An auxiliary information reading apparatus according to the present invention is an auxiliary information reading apparatus for reading out auxiliary information from image data embedded with said auxiliary information by a specific form of the information embedding apparatus of the present invention, said auxiliary information reading apparatus comprising:
conversion means for converting said image data by said first conversion table and obtaining first image data; and
read means for reading out said auxiliary information, based on a difference in color between the image data embedded with said auxiliary information and said first image data.
An image output apparatus according to the present invention is an image output apparatus for outputting image data embedded with said auxiliary information by a specific form of the information embedding apparatus of the present invention, said image output apparatus comprising:
read means for reading out said auxiliary information from said image data; and
output means for performing a process based on said auxiliary information with respect to said image data and outputting said image data.
In this case, said output means may be means for giving said auxiliary information to said image so that said auxiliary information can be recognized visually and outputting said image data.
Note that the information embedding method, auxiliary information reading method, and image output method according to the present invention may be provided by recording them on a computer readable recording medium as a program executable by a computer.
According the present invention, attention is paid to a quantization error that occurs when image data is converted from a first color space to a second color space, and auxiliary information is embedded into this quantization error. As a result, another piece of information differing from image data can be embedded into image data as auxiliary information.
Note that by embedding auxiliary information into a quantization error in a space where the quantization resolution of the first color space shrinks, the auxiliary information will not be visually recognized in reproducing image data, so that the auxiliary information can be concealed and embedded into the image data. In this case, by comparing an image represented by image data before color conversion with an image represented by image data embedded with auxiliary information, it is confirmed what color the color of a predetermined pixel in the image before color conversion has been converted to, whereby the auxiliary information can be read out.
Also, by embedding auxiliary information into a quantization error in a space where the quantization resolution of the first color space increases, a pixel having a predetermined color in an image represented by image data before color conversion is converted to a different color in an image represented by image data embedded with the auxiliary information, depending upon whether or not the auxiliary information is present. In this case, the auxiliary information can be embedded into the image data such that the auxiliary information is difficult to recognize visually, by arranging the color coordinate of the color of the conversion destination having the auxiliary information and the color coordinate of the color of the conversion destination having no auxiliary information such that the color coordinates are adjacent to each other.